gusucode.com > 7波段参数均衡器源码程序 > 7波段参数均衡器源码程序/code/Parametric EQ/ParametricEQ.m
function varargout = ParametricEQ(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @ParametricEQ_OpeningFcn, ... 'gui_OutputFcn', @ParametricEQ_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before ParametricEQ is made visible. function ParametricEQ_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; set(gcf,'Name','Parametric Equalizer'); setappdata(handles.yup,'y',20); reset_Callback(hObject, eventdata, handles); % Update handles structure guidata(hObject, handles); % UIWAIT makes ParametricEQ wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = ParametricEQ_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % --- Executes on slider movement. function slider1_Callback(hObject, eventdata, handles) if get(handles.fc1,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Min',20); Val1 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'fcVal1',Val1); end if get(handles.g1,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val1 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal1',Val1); end if get(handles.q1,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',10); set(hObject,'Min',0.1); Val1 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal1',Val1); end set(handles.val1,'String',Val1); calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function slider1_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end % --- Executes on slider movement. function slider2_Callback(hObject, eventdata, handles) if get(handles.fc2,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val2= round(get(hObject, 'Value')); setappdata(hObject,'fcVal2',Val2); end if get(handles.g2,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val2 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal2',Val2); end if get(handles.q2,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',10); set(hObject,'Min',0.1); Val2 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal2',Val2); end set(handles.val2,'String',Val2); calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function slider2_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end % --- Executes on slider movement. function slider3_Callback(hObject, eventdata, handles) if get(handles.fc3,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val3 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal3',Val3); end if get(handles.g3,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val3 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal3',Val3); end if get(handles.q3,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',10); set(hObject,'Min',0.1); Val3 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal3',Val3); end set(handles.val3,'String',Val3); calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function slider3_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end % --- Executes on slider movement. function slider4_Callback(hObject, eventdata, handles) if get(handles.fc4,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val4 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal4',Val4); end if get(handles.g4,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val4 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal4',Val4); end if get(handles.q4,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',10); set(hObject,'Min',0.1); Val4 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal4',Val4); end set(handles.val4,'String',Val4); calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function slider4_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end % --- Executes on slider movement. function slider5_Callback(hObject, eventdata, handles) if get(handles.type5,'Value')==1 if get(handles.fc5,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val5 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal5',Val5); end if get(handles.g5,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val5 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal5',Val5); end if get(handles.q5,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',0.1); Val5 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal5',Val5); end elseif (get(handles.type5,'Value'))==2 || (get(handles.type5,'Value'))==3 if get(handles.fc5,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',18000); set(hObject,'Min',25); Val5 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal5',Val5); end if get(handles.g5,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val5 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal5',Val5); end elseif (get(handles.type5,'Value'))==4 || (get(handles.type5,'Value'))==5 if get(handles.fc5,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val5 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal5',Val5); end if get(handles.g5,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',100); set(hObject,'Min',-15); Val5 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal5',Val5); end if get(handles.q5,'Value')==1 set(hObject,'SliderStep',[1 1]); set(hObject,'Max',4); set(hObject,'Min',1); Val5 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal5',Val5); end end set(handles.val5,'String',Val5); calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function slider5_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end % --- Executes on slider movement. function slider6_Callback(hObject, eventdata, handles) if strcmp(get(handles.type6,'String'),'Peak')==1 if get(handles.fc6,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val6 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal6',Val6); end if get(handles.g6,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val6 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal6',Val6); end if get(handles.q6,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',0.1); Val6 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal6',Val6); end elseif strcmp(get(handles.type6,'String'),'Shelving HP')==1 || strcmp(get(handles.type6,'String'),'Shelving LP')==1 if get(handles.fc6,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',18000); set(hObject,'Min',25); Val6 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal6',Val6); end if get(handles.g6,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val6 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal6',Val6); end elseif strcmp(get(handles.type6,'String'),'Lowpass')==1 || strcmp(get(handles.type6,'String'),'Highpass')==1 if get(handles.fc6,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val6 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal6',Val6); end if get(handles.g6,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',100); set(hObject,'Min',-15); Val6 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal6',Val6); end if get(handles.q6,'Value')==1 set(hObject,'SliderStep',[1 1]); set(hObject,'Max',4); set(hObject,'Min',1); Val6 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal6',Val6); end end set(handles.val6,'String',Val6); calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function slider6_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end % --- Executes on slider movement. function slider7_Callback(hObject, eventdata, handles) if strcmp(get(handles.type7,'String'),'Peak')==1 if get(handles.fc7,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val7 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal7',Val7); end if get(handles.g7,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val7 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal7',Val7); end if get(handles.q7,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',0.1); Val7 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal7',Val7); end elseif strcmp(get(handles.type7,'String'),'Shelving HP')==1 || strcmp(get(handles.type7,'String'),'Shelving LP')==1 if get(handles.fc7,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',18000); set(hObject,'Min',25); Val7 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal7',Val7); end if get(handles.g7,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',15); set(hObject,'Min',-15); Val7 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal7',Val7); end elseif strcmp(get(handles.type7,'String'),'Lowpass')==1 || strcmp(get(handles.type7,'String'),'Highpass')==1 if get(handles.fc7,'Value')==1 set(hObject,'SliderStep',[0.0001 0.1]); set(hObject,'Max',20000); set(hObject,'Min',20); Val7 = round(get(hObject, 'Value')); setappdata(hObject,'fcVal7',Val7); end if get(handles.g7,'Value')==1 set(hObject,'SliderStep',[0.01 0.1]); set(hObject,'Max',100); set(hObject,'Min',-15); Val7 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'gVal7',Val7); end if get(handles.q7,'Value')==1 set(hObject,'SliderStep',[1 1]); set(hObject,'Max',4); set(hObject,'Min',1); Val7 = 0.1*round(10*get(hObject, 'Value')); setappdata(hObject,'qVal7',Val7); end end set(handles.val7,'String',Val7); calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function slider7_CreateFcn(hObject, eventdata, handles) if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end function val1_Callback(hObject, eventdata, handles) if get(handles.fc1,'Value')==1 fcVal1 = get(hObject, 'string'); fcVal1 = str2double(fcVal1); if fcVal1 < 20 fcVal1=20; end if fcVal1 > 20000 fcVal1=20000; end set(hObject,'string',fcVal1); set(handles.slider1,'Value',fcVal1); setappdata(handles.slider1,'fcVal1',fcVal1); end if get(handles.g1,'Value')==1 gVal1 = get(hObject, 'string'); gVal1 = str2double(gVal1); if gVal1 < -15 gVal1=-15; end Gmax=15; if gVal1 > Gmax gVal1=Gmax; end set(hObject,'string',gVal1); set(handles.slider1,'Value',gVal1) setappdata(handles.slider1,'gVal1',gVal1); end if get(handles.q1,'Value')==1 qVal1 = get(hObject, 'string'); qVal1 = str2double(qVal1); if qVal1 < 0.1 qVal1=0.1; end if qVal1 > 10 qVal1=10; end set(hObject,'string',qVal1); set(handles.slider1,'Value',qVal1) setappdata(handles.slider1,'qVal1',qVal1); end calculatePEQ(hObject,handles); function val2_Callback(hObject, eventdata, handles) if get(handles.fc2,'Value')==1 fcVal2 = get(hObject, 'string'); fcVal2 = str2double(fcVal2); if fcVal2 < 20 fcVal2=20; end if fcVal2 > 20000 fcVal2=20000; end set(hObject,'string',fcVal2); set(handles.slider2,'Value',fcVal2) setappdata(handles.slider2,'fcVal2',fcVal2); end if get(handles.g2,'Value')==1 gVal2 = get(hObject, 'string'); gVal2 = str2double(gVal2); if gVal2 < -15 gVal2=-15; end Gmax=15; if gVal2 > Gmax gVal2=Gmax; end set(hObject,'string',gVal2); set(handles.slider2,'Value',gVal2) setappdata(handles.slider2,'gVal2',gVal2); end if get(handles.q2,'Value')==1 qVal2 = get(hObject, 'string'); qVal2 = str2double(qVal2); if qVal2 < 0.1 qVal2=0.1; end if qVal2 > 10 qVal2=10; end set(hObject,'string',qVal2); set(handles.slider2,'Value',qVal2) setappdata(handles.slider2,'qVal2',qVal2); end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function val2_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function val3_Callback(hObject, eventdata, handles) if get(handles.fc3,'Value')==1 fcVal3 = get(hObject, 'string'); fcVal3 = str2double(fcVal3); if fcVal3 < 20 fcVal3=20; end if fcVal3 > 20000 fcVal3=20000; end set(hObject,'string',fcVal3); set(handles.slider3,'Value',fcVal3) setappdata(handles.slider3,'fcVal3',fcVal3); end if get(handles.g3,'Value')==1 gVal3 = get(hObject, 'string'); gVal3 = str2double(gVal3); if gVal3 < -15 gVal3=-15; end Gmax=15; if gVal3 > Gmax gVal3=Gmax; end set(hObject,'string',gVal3); set(handles.slider3,'Value',gVal3) setappdata(handles.slider3,'gVal3',gVal3); end if get(handles.q3,'Value')==1 qVal3 = get(hObject, 'string'); qVal3 = str2double(qVal3); if qVal3 < 0.1 qVal3=0.1; end if qVal3 > 10 qVal3=10; end set(hObject,'string',qVal3); set(handles.slider3,'Value',qVal3) setappdata(handles.slider3,'qVal3',qVal3); end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function val3_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function val4_Callback(hObject, eventdata, handles) if get(handles.fc4,'Value')==1 fcVal4 = get(hObject, 'string'); fcVal4 = str2double(fcVal4); if fcVal4 < 20 fcVal4=20; end if fcVal4 > 20000 fcVal4=20000; end set(hObject,'string',fcVal4); set(handles.slider4,'Value',fcVal4) setappdata(handles.slider4,'fcVal4',fcVal4); end if get(handles.g4,'Value')==1 gVal4 = get(hObject, 'string'); gVal4 = str2double(gVal4); if gVal4 < -15 gVal4=-15; end Gmax=15; if gVal4 > Gmax gVal4=Gmax; end set(hObject,'string',gVal4); set(handles.slider4,'Value',gVal4) setappdata(handles.slider4,'gVal4',gVal4); end if get(handles.q4,'Value')==1 qVal4 = get(hObject, 'string'); qVal4 = str2double(qVal4); if qVal4 < 0.1 qVal4=0.1; end if qVal4 > 10 qVal4=10; end set(hObject,'string',qVal4); set(handles.slider4,'Value',qVal4) setappdata(handles.slider4,'qVal4',qVal4); end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function val4_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function val5_Callback(hObject, eventdata, handles) if get(handles.type5,'Value')==1 if get(handles.fc5,'Value')==1 fcVal5 = get(hObject, 'string'); fcVal5 = str2double(fcVal5); if fcVal5 < 20 fcVal5=20; end if fcVal5 > 20000 fcVal5=20000; end set(hObject,'string',fcVal5); set(handles.slider5,'Value',fcVal5) setappdata(handles.slider5,'fcVal5',fcVal5); end if get(handles.g5,'Value')==1 gVal5 = get(hObject, 'string'); gVal5 = str2double(gVal5); if gVal5 < -15 gVal5=-15; end Gmax=15; if gVal5 > Gmax gVal5=Gmax; end set(hObject,'string',gVal5); set(handles.slider5,'Value',gVal5) setappdata(handles.slider5,'gVal5',gVal5); end if get(handles.q5,'Value')==1 qVal5 = get(hObject, 'string'); qVal5 = str2double(qVal5); if qVal5 < 0.1 qVal5=0.1; end if qVal5> 10 qVal5=10; end set(hObject,'string',qVal5); set(handles.slider5,'Value',qVal5) setappdata(handles.slider5,'qVal5',qVal5); end elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3 if get(handles.fc5,'Value')==1 fcVal5 = get(hObject, 'string'); fcVal5 = str2double(fcVal5); if fcVal5 < 25 fcVal5=25; end if fcVal5 > 18000 fcVal5=18000; end set(hObject,'string',fcVal5); set(handles.slider5,'Value',fcVal5) setappdata(handles.slider5,'fcVal5',fcVal5); end if get(handles.g5,'Value')==1 gVal5 = get(hObject, 'string'); gVal5 = str2double(gVal5); if gVal5 < -15 gVal5=-15; end Gmax=15; if gVal5 > Gmax gVal5=Gmax; end set(hObject,'string',gVal5); set(handles.slider5,'Value',gVal5) setappdata(handles.slider5,'gVal5',gVal5); end elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5 if get(handles.fc5,'Value')==1 fcVal5 = get(hObject, 'string'); fcVal5 = str2double(fcVal5); if fcVal5 < 20 fcVal5=20; end if fcVal5 > 20000 fcVal5=20000; end set(hObject,'string',fcVal5); set(handles.slider5,'Value',fcVal5) setappdata(handles.slider5,'fcVal5',fcVal5); end if get(handles.g5,'Value')==1 gVal5 = get(hObject, 'string'); gVal5 = str2double(gVal5); if gVal5 < -15 gVal5=-15; end if gVal5 > 100 gVal5=100; end set(hObject,'string',gVal5); set(handles.slider5,'Value',gVal5) setappdata(handles.slider5,'gVal5',gVal5); end if get(handles.q5,'Value')==1 qVal5 = get(hObject, 'string'); qVal5 = str2double(qVal5); if qVal5 < 1 qVal5=1; end if qVal5 > 4 qVal5=4; end set(hObject,'string',qVal5); set(handles.slider5,'Value',qVal5) setappdata(handles.slider5,'qVal5',round(qVal5)); end end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function val5_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function val6_Callback(hObject, eventdata, handles) if get(handles.type6,'Value')==1 if get(handles.fc6,'Value')==1 fcVal6 = get(hObject, 'string'); fcVal6 = str2double(fcVal6); if fcVal6 < 20 fcVal6=20; end if fcVal6 > 20000 fcVal6=20000; end set(hObject,'string',fcVal6); set(handles.slider6,'Value',fcVal6) setappdata(handles.slider6,'fcVal6',fcVal6); end if get(handles.g6,'Value')==1 gVal6 = get(hObject, 'string'); gVal6 = str2double(gVal6); if gVal6 < -15 gVal6=-15; end Gmax=15; if gVal6 > Gmax gVal6=Gmax; end set(hObject,'string',gVal6); set(handles.slider6,'Value',gVal6) setappdata(handles.slider6,'gVal6',gVal6); end if get(handles.q6,'Value')==1 qVal6 = get(hObject, 'string'); qVal6 = str2double(qVal6); if qVal6 < 0.1 qVal6=0.1; end if qVal6> 10 qVal6=10; end set(hObject,'string',qVal6); set(handles.slider6,'Value',qVal6) setappdata(handles.slider6,'qVal6',qVal6); end elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==3 if get(handles.fc6,'Value')==1 fcVal6 = get(hObject, 'string'); fcVal6 = str2double(fcVal6); if fcVal6 < 25 fcVal6=25; end if fcVal6 > 18000 fcVal6=18000; end set(hObject,'string',fcVal6); set(handles.slider6,'Value',fcVal6) setappdata(handles.slider6,'fcVal6',fcVal6); end if get(handles.g6,'Value')==1 gVal6 = get(hObject, 'string'); gVal6 = str2double(gVal6); if gVal6 < -15 gVal6=-15; end Gmax=15; if gVal6 > Gmax gVal6=Gmax; end set(hObject,'string',gVal6); set(handles.slider6,'Value',gVal6) setappdata(handles.slider6,'gVal6',gVal6); end elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5 if get(handles.fc6,'Value')==1 fcVal6 = get(hObject, 'string'); fcVal6 = str2double(fcVal6); if fcVal6 < 20 fcVal6=20; end if fcVal6 > 20000 fcVal6=20000; end set(hObject,'string',fcVal6); set(handles.slider6,'Value',fcVal6) setappdata(handles.slider6,'fcVal6',fcVal6); end if get(handles.g6,'Value')==1 gVal6 = get(hObject, 'string'); gVal6 = str2double(gVal6); if gVal6 < -15 gVal6=-15; end if gVal6 > 100 gVal6=100; end set(hObject,'string',gVal6); set(handles.slider6,'Value',gVal6) setappdata(handles.slider6,'gVal6',gVal6); end if get(handles.q6,'Value')==1 qVal6 = get(hObject, 'string'); qVal6 = str2double(qVal6); if qVal6 < 1 qVal6=1; end if qVal6 > 4 qVal6=4; end set(hObject,'string',qVal6); set(handles.slider6,'Value',qVal6) setappdata(handles.slider6,'qVal6',round(qVal6)); end end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function val6_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function val7_Callback(hObject, eventdata, handles) if get(handles.type7,'Value')==1 if get(handles.fc7,'Value')==1 fcVal7 = get(hObject, 'string'); fcVal7 = str2double(fcVal7); if fcVal7 < 20 fcVal7=20; end if fcVal7 > 20000 fcVal7=20000; end set(hObject,'string',fcVal7); set(handles.slider7,'Value',fcVal7) setappdata(handles.slider7,'fcVal7',fcVal7); end if get(handles.g7,'Value')==1 gVal7 = get(hObject, 'string'); gVal7 = str2double(gVal7); if gVal7 < -15 gVal7=-15; end Gmax=15; if gVal7 > Gmax gVal7=Gmax; end set(hObject,'string',gVal7); set(handles.slider7,'Value',gVal7) setappdata(handles.slider7,'gVal7',gVal7); end if get(handles.q7,'Value')==1 qVal7 = get(hObject, 'string'); qVal7 = str2double(qVal7); if qVal7 < 0.1 qVal7=0.1; end if qVal7> 10 qVal7=10; end set(hObject,'string',qVal7); set(handles.slider7,'Value',qVal7) setappdata(handles.slider7,'qVal7',qVal7); end elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3 if get(handles.fc7,'Value')==1 fcVal7 = get(hObject, 'string'); fcVal7 = str2double(fcVal7); if fcVal7 < 25 fcVal7=25; end if fcVal7 > 18000 fcVal7=18000; end set(hObject,'string',fcVal7); set(handles.slider7,'Value',fcVal7) setappdata(handles.slider7,'fcVal7',fcVal7); end if get(handles.g7,'Value')==1 gVal7 = get(hObject, 'string'); gVal7 = str2double(gVal7); if gVal7 < -15 gVal7=-15; end Gmax=15; if gVal7 > Gmax gVal7=Gmax; end set(hObject,'string',gVal7); set(handles.slider7,'Value',gVal7) setappdata(handles.slider7,'gVal7',gVal7); end elseif get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5 if get(handles.fc7,'Value')==1 fcVal7 = get(hObject, 'string'); fcVal7 = str2double(fcVal7); if fcVal7 < 20 fcVal7=20; end if fcVal7 > 20000 fcVal7=20000; end set(hObject,'string',fcVal7); set(handles.slider7,'Value',fcVal7) setappdata(handles.slider7,'fcVal7',fcVal7); end if get(handles.g7,'Value')==1 gVal7 = get(hObject, 'string'); gVal7 = str2double(gVal7); if gVal7 < -15 gVal7=-15; end if gVal7 > 15 gVal7=15; end set(hObject,'string',gVal7); set(handles.slider7,'Value',gVal7) setappdata(handles.slider7,'gVal7',gVal7); end if get(handles.q7,'Value')==1 qVal7 = get(hObject, 'string'); qVal7 = str2double(qVal7); if qVal7 < 1 qVal7=1; end if qVal7 > 4 qVal7=4; end set(hObject,'string',qVal7); set(handles.slider7,'Value',qVal7) setappdata(handles.slider7,'qVal7',round(qVal7)); end end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function val7_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in eq1. function eq1_Callback(hObject, eventdata, handles) calculatePEQ(hObject,handles); % --- Executes on button press in eq2. function eq2_Callback(hObject, eventdata, handles) calculatePEQ(hObject,handles); % --- Executes on button press in eq3. function eq3_Callback(hObject, eventdata, handles) calculatePEQ(hObject,handles); % --- Executes on button press in eq4. function eq4_Callback(hObject, eventdata, handles) calculatePEQ(hObject,handles); % --- Executes on button press in eq5. function eq5_Callback(hObject, eventdata, handles) calculatePEQ(hObject,handles); % --- Executes on button press in eq6. function eq6_Callback(hObject, eventdata, handles) calculatePEQ(hObject,handles); % --- Executes on button press in eq7. function eq7_Callback(hObject, eventdata, handles) calculatePEQ(hObject,handles); % --- Executes on button press in close. function close_Callback(hObject, eventdata, handles) button = questdlg('Store filter?' ); if strcmp(button,'No')==1 close gcf; end if strcmp(button,'Yes')==1 store_Callback(hObject, eventdata, handles); set(gcf,'Name','ParametricEQ'); close ParametricEQ; end % --- Executes on button press in store. function store_Callback(hObject, eventdata, handles) Hd_peq=getappdata(hObject,'Hd_peq'); prompt = {'Enter name for parametric equalizer :'}; dlg_title = 'Name'; num_lines=1; def = {'PEQ'}; newname = inputdlg(prompt,dlg_title,num_lines,def); if isempty(newname)==0 newname=cell2mat(newname); assignin('base',newname,Hd_peq); end % --- Executes on button press in fc1. function fc1_Callback(hObject, eventdata, handles) fcval1=getappdata(handles.slider1,'fcVal1'); set(handles.slider1,'Max',20000); set(handles.slider1,'Min',20); set(handles.unit1,'String','Hz'); set(handles.slider1,'Value',fcval1); set(handles.val1,'string',round(fcval1)); % --- Executes on button press in fc2. function fc2_Callback(hObject, eventdata, handles) set(handles.slider2,'Max',20000); set(handles.slider2,'Min',20); set(handles.unit2,'String','Hz'); fcval=getappdata(handles.slider2,'fcVal2'); set(handles.slider2,'Value',fcval); set(handles.val2,'string',round(fcval)); % --- Executes on button press in fc3. function fc3_Callback(hObject, eventdata, handles) set(handles.slider3,'Max',20000); set(handles.slider3,'Min',20); set(handles.unit3,'String','Hz'); fcval=getappdata(handles.slider3,'fcVal3'); set(handles.slider3,'Value',fcval); set(handles.val3,'string',round(fcval)); % --- Executes on button press in fc4. function fc4_Callback(hObject, eventdata, handles) set(handles.slider4,'Max',20000); set(handles.slider4,'Min',20); set(handles.unit4,'String','Hz'); fcval=getappdata(handles.slider4,'fcVal4'); set(handles.slider4,'Value',fcval); set(handles.val4,'string',round(fcval)); % --- Executes on button press in fc5. function fc5_Callback(hObject, eventdata, handles) if get(handles.type5,'Value')==1 || get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5 set(handles.slider5,'Max',20000); set(handles.slider5,'Min',20); set(handles.unit5,'String','Hz'); fcval=getappdata(handles.slider5,'fcVal5'); set(handles.slider5,'Value',fcval); set(handles.val5,'string',round(fcval)); elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3 set(handles.slider5,'Max',18000); set(handles.slider5,'Min',25); set(handles.unit5,'String','Hz'); fcval=getappdata(handles.slider5,'fcVal5'); set(handles.slider5,'Value',fcval); set(handles.val5,'string',round(fcval)); end % --- Executes on button press in fc6. function fc6_Callback(hObject, eventdata, handles) if get(handles.type6,'Value')==1 || get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5 set(handles.slider6,'Max',20000); set(handles.slider6,'Min',20); set(handles.unit6,'String','Hz'); fcval=getappdata(handles.slider6,'fcVal6'); set(handles.slider6,'Value',fcval); set(handles.val6,'string',round(fcval)); elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==5 set(handles.slider6,'Max',18000); set(handles.slider6,'Min',25); set(handles.unit6,'String','Hz'); fcval=getappdata(handles.slider6,'fcVal6'); set(handles.slider6,'Value',fcval); set(handles.val6,'string',round(fcval)); end % --- Executes on button press in fc7. function fc7_Callback(hObject, eventdata, handles) if get(handles.type7,'Value')==1 || get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5 set(handles.slider7,'Max',20000); set(handles.slider7,'Min',20); set(handles.unit7,'String','Hz'); fcval=getappdata(handles.slider7,'fcVal7'); set(handles.slider7,'Value',fcval); set(handles.val7,'string',round(fcval)); elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3 set(handles.slider7,'Max',18000); set(handles.slider7,'Min',25); set(handles.unit7,'String','Hz'); fcval=getappdata(handles.slider7,'fcVal7'); set(handles.slider7,'Value',fcval); set(handles.val7,'string',round(fcval)); end % --- Executes on button press in g1. function g1_Callback(hObject, eventdata, handles) gval1=getappdata(handles.slider1,'gVal1'); set(handles.slider1,'Value',15); set(handles.slider1,'Max',15); set(handles.slider1,'Min',-15); set(handles.unit1,'String','dB'); set(handles.slider1,'Value',gval1); set(handles.val1,'string',0.1*round(10*gval1)); % --- Executes on button press in g2. function g2_Callback(hObject, eventdata, handles) gval2=getappdata(handles.slider2,'gVal2'); set(handles.slider2,'Max',15); set(handles.slider2,'Min',-15); set(handles.unit2,'String','dB'); set(handles.slider2,'Value',gval2); set(handles.val2,'string',0.1*round(10*gval2)); % --- Executes on button press in g3. function g3_Callback(hObject, eventdata, handles) gval3=getappdata(handles.slider3,'gVal3'); set(handles.slider3,'Max',15); set(handles.slider3,'Min',-15); set(handles.unit3,'String','dB'); set(handles.slider3,'Value',gval3); set(handles.val3,'string',0.1*round(10*gval3)); % --- Executes on button press in g4. function g4_Callback(hObject, eventdata, handles) gval4=getappdata(handles.slider4,'gVal4'); set(handles.slider4,'Max',15); set(handles.slider4,'Min',-15); set(handles.unit4,'String','dB'); set(handles.slider4,'Value',gval4); set(handles.val4,'string',0.1*round(10*gval4)); % --- Executes on button press in g5. function g5_Callback(hObject, eventdata, handles) if get(handles.type5,'Value')==1 gval5=getappdata(handles.slider5,'gVal5'); set(handles.slider5,'Max',15); set(handles.slider5,'Min',-15); set(handles.unit5,'String','dB'); set(handles.slider5,'Value',gval5); set(handles.val5,'string',0.1*round(10*gval5)); elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3 gval5=getappdata(handles.slider5,'gVal5'); set(handles.slider5,'Max',15); set(handles.slider5,'Min',-15); set(handles.unit5,'String','dB'); set(handles.slider5,'Value',gval5); set(handles.val5,'string',0.1*round(10*gval5)); elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5 gval5=getappdata(handles.slider5,'gVal5'); set(handles.slider5,'Max',15); set(handles.slider5,'Min',-15); set(handles.unit5,'String','dB'); set(handles.slider5,'Value',gval5); set(handles.val5,'string',0.1*round(10*gval5)); end % --- Executes on button press in g6. function g6_Callback(hObject, eventdata, handles) if get(handles.type6,'Value')==1 gval6=getappdata(handles.slider6,'gVal6'); set(handles.slider6,'Max',15); set(handles.slider6,'Min',-15); set(handles.unit6,'String','dB'); set(handles.slider6,'Value',gval6); set(handles.val6,'string',0.1*round(10*gval6)); elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==3 gval6=getappdata(handles.slider6,'gVal6'); set(handles.slider6,'Max',15); set(handles.slider6,'Min',-15); set(handles.unit6,'String','dB'); set(handles.slider6,'Value',gval6); set(handles.val6,'string',0.1*round(10*gval6)); elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5 gval6=getappdata(handles.slider6,'gVal6'); set(handles.slider6,'Max',15); set(handles.slider6,'Min',-15); set(handles.unit6,'String','dB'); set(handles.slider6,'Value',gval6); set(handles.val6,'string',0.1*round(10*gval6)); end % --- Executes on button press in g7. function g7_Callback(hObject, eventdata, handles) if get(handles.type7,'Value')==1 gval7=getappdata(handles.slider7,'gVal7'); set(handles.slider7,'Max',15); set(handles.slider7,'Min',-15); set(handles.unit7,'String','dB'); set(handles.slider7,'Value',gval7); set(handles.val7,'string',0.1*round(10*gval7)); elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3 gval7=getappdata(handles.slider7,'gVal7'); set(handles.slider7,'Max',15); set(handles.slider7,'Min',-15); set(handles.unit7,'String','dB'); set(handles.slider7,'Value',gval7); set(handles.val7,'string',0.1*round(10*gval7)); elseif get(handles.type7,'Value')==4 || sget(handles.type7,'Value')==5 gval7=getappdata(handles.slider7,'gVal7'); set(handles.slider7,'Max',15); set(handles.slider7,'Min',-15); set(handles.unit7,'String','dB'); set(handles.slider7,'Value',gval7); set(handles.val7,'string',0.1*round(10*gval7)); end % --- Executes on button press in q1. function q1_Callback(hObject, eventdata, handles) qval1=getappdata(handles.slider1,'qVal1'); set(handles.slider1,'Max',10); set(handles.slider1,'Min',0.1); set(handles.unit1,'String',''); set(handles.slider1,'Value',qval1); set(handles.val1,'string',qval1); % --- Executes on button press in q2. function q2_Callback(hObject, eventdata, handles) set(handles.slider2,'Max',10); set(handles.slider2,'Min',0.1); set(handles.unit2,'String',''); qval2=getappdata(handles.slider2,'qVal2'); set(handles.slider2,'Value',qval2); set(handles.val2,'string',qval2); % --- Executes on button press in q3. function q3_Callback(hObject, eventdata, handles) set(handles.slider3,'Max',10); set(handles.slider3,'Min',0.1); set(handles.unit3,'String',''); qval3=getappdata(handles.slider3,'qVal3'); set(handles.slider3,'Value',qval3); set(handles.val3,'string',qval3); % --- Executes on button press in q4. function q4_Callback(hObject, eventdata, handles) set(handles.slider4,'Max',10); set(handles.slider4,'Min',0.1); set(handles.unit4,'String',''); qval4=getappdata(handles.slider4,'qVal4'); set(handles.slider4,'Value',qval4); set(handles.val4,'string',qval4); % --- Executes on button press in q5. function q5_Callback(hObject, eventdata, handles) if get(handles.type5,'Value')==1 set(hObject,'String','Q'); qval5=getappdata(handles.slider5,'qVal5'); set(handles.slider5,'Max',10); set(handles.slider5,'Min',0.1); set(handles.unit5,'String',''); set(handles.slider5,'Value',qval5); set(handles.val5,'string',0.1*round(10*qval5)); elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5 set(hObject,'String','N'); qval5=getappdata(handles.slider5,'qVal5'); if qval5 < 1 qval5=1; elseif qval5 > 4 qval5=4; end set(hObject,'SliderStep',[1 1]); set(handles.slider5,'Max',4); set(handles.slider5,'Min',1); set(handles.unit5,'String',''); set(handles.slider5,'Value',round(qval5)); set(handles.val5,'string',round(qval5)); end % --- Executes on button press in q6. function q6_Callback(hObject, eventdata, handles) if get(handles.type6,'Value')==1 set(hObject,'String','Q'); qval6=getappdata(handles.slider6,'qVal6'); set(handles.slider6,'Max',10); set(handles.slider6,'Min',0.1); set(handles.unit6,'String',''); set(handles.slider6,'Value',qval6); set(handles.val6,'string',0.1*round(10*qval6)); elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5 set(hObject,'String','N'); qval6=getappdata(handles.slider6,'qVal6'); if qval6 < 1 qval6=1; elseif qval6 > 4 qval6=4; end set(hObject,'SliderStep',[1 1]); set(handles.slider6,'Max',4); set(handles.slider6,'Min',1); set(handles.unit6,'String',''); set(handles.slider6,'Value',round(qval6)); set(handles.val6,'string',round(qval6)); end % --- Executes on button press in q7. function q7_Callback(hObject, eventdata, handles) if get(handles.type7,'Value')==1 set(hObject,'String','Q'); qval7=getappdata(handles.slider7,'qVal7'); set(handles.slider7,'Max',10); set(handles.slider7,'Min',0.1); set(handles.unit7,'String',''); set(handles.slider7,'Value',qval7); set(handles.val7,'string',0.1*round(10*qval7)); elseif get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5 set(hObject,'String','N'); qval7=getappdata(handles.slider7,'qVal7'); if qval7 < 1 qval7=1; elseif qval7 > 4 qval7=4; end set(hObject,'SliderStep',[1 1]); set(handles.slider7,'Max',4); set(handles.slider7,'Min',1); set(handles.unit7,'String',''); set(handles.slider7,'Value',round(qval7)); set(handles.val7,'string',round(qval7)); end function calculatePEQ(hObject,handles) cla; fc1=getappdata(handles.slider1,'fcVal1'); g1=getappdata(handles.slider1,'gVal1'); q1=getappdata(handles.slider1,'qVal1'); if get(handles.eq1,'Value')==0 g1=0; end Hd1=peakingEQ(fc1,g1,q1); fc2=getappdata(handles.slider2,'fcVal2'); g2=getappdata(handles.slider2,'gVal2'); q2=getappdata(handles.slider2,'qVal2'); if get(handles.eq2,'Value')==0 g2=0; end Hd2=peakingEQ(fc2,g2,q2); fc3=getappdata(handles.slider3,'fcVal3'); g3=getappdata(handles.slider3,'gVal3'); q3=getappdata(handles.slider3,'qVal3'); if get(handles.eq3,'Value')==0 g3=0; end Hd3=peakingEQ(fc3,g3,q3); fc4=getappdata(handles.slider4,'fcVal4'); g4=getappdata(handles.slider4,'gVal4'); q4=getappdata(handles.slider4,'qVal4'); if get(handles.eq4,'Value')==0 g4=0; end Hd4=peakingEQ(fc4,g4,q4); fc5=getappdata(handles.slider5,'fcVal5'); g5=getappdata(handles.slider5,'gVal5'); q5=getappdata(handles.slider5,'qVal5'); if get(handles.type5,'Value')==1 Hd5=peakingEQ(fc5,g5,q5); elseif get(handles.type5,'Value')==2 Hd5=shelvingEQ(fc5,g5,'LP'); elseif get(handles.type5,'Value')==3 Hd5=shelvingEQ(fc5,g5,'HP'); elseif get(handles.type5,'Value')==4 Hd5=lowpassEQ(fc5,g5,q5); elseif get(handles.type5,'Value')==5 Hd5=highpassEQ(fc5,g5,q5); end if get(handles.eq5,'Value')==0 g5=0; Hd5=peakingEQ(fc5,g5,q5); end fc6=getappdata(handles.slider6,'fcVal6'); g6=getappdata(handles.slider6,'gVal6'); q6=getappdata(handles.slider6,'qVal6'); if get(handles.type6,'Value')==1 Hd6=peakingEQ(fc6,g6,q6); elseif get(handles.type6,'Value')==2 Hd6=shelvingEQ(fc6,g6,'LP'); elseif get(handles.type6,'Value')==3 Hd6=shelvingEQ(fc6,g6,'HP'); elseif get(handles.type6,'Value')==4 Hd6=lowpassEQ(fc6,g6,q6); elseif get(handles.type6,'Value')==5 Hd6=highpassEQ(fc6,g6,q6); end if get(handles.eq6,'Value')==0 g6=0; Hd6=peakingEQ(fc6,g6,q6); end fc7=getappdata(handles.slider7,'fcVal7'); g7=getappdata(handles.slider7,'gVal7'); q7=getappdata(handles.slider7,'qVal7'); if get(handles.type7,'Value')==1 Hd7=peakingEQ(fc7,g7,q7); elseif get(handles.type7,'Value')==2 Hd7=shelvingEQ(fc7,g7,'LP'); elseif get(handles.type7,'Value')==3 Hd7=shelvingEQ(fc7,g7,'HP'); elseif get(handles.type7,'Value')==4 Hd7=lowpassEQ(fc7,g7,q7); elseif get(handles.type7,'Value')==5 Hd7=highpassEQ(fc7,g7,q7); end if get(handles.eq7,'Value')==0 g7=0; Hd7=peakingEQ(fc7,g7,q7); end Hd_peq=dfilt.cascade(Hd1,Hd2,Hd3,Hd4,Hd5,Hd6,Hd7); setappdata(handles.store,'Hd_peq',Hd_peq); L=4096; H=20*log10(abs(fft(filter(Hd_peq,vertcat(1,zeros(L-1,1))),L))); f=0:44100/(L-1):22050; axes(handles.axes); plot(f,H(1:end/2),'lineWidth',2,'Color',[0 0 1]); set(get(gca,'YLabel'),'String','amplitude / dB','FontSize',10,'FontWeight','bold') set(get(gca,'XLabel'),'String','frequency / Hz','FontSize',10,'FontWeight','bold') set(handles.axes,... 'FontWeight','bold',... 'XGrid','on',... 'XMinorGrid','on',... 'XTick',[32,63,125,250,500,1000,2000,4000,8000,16000],... 'XTickLabel',{'32','63','125','250','500','1k','2k','4k','8k','16k'},... 'XScale','log','YGrid','on') y=getappdata(handles.yup,'y'); axis([32 16000 -y y]); hold on if get(handles.eq1,'Value')==1 line(fc1,g1, ... 'LineWidth',3,... 'MarkerSize',3,... 'Color',[1 0 0], ... 'Marker','diamond', ... 'Tag','eq1', ... 'LineStyle','none'); text(fc1,g1+2,'1','FontWeight','bold'); end if get(handles.eq2,'Value')==1 line(fc2,g2, ... 'LineWidth',3,... 'MarkerSize',3,... 'Color',[1 0 0], ... 'Marker','diamond', ... 'Tag','eq2', ... 'LineStyle','none'); text(fc2,g2+2,'2','FontWeight','bold'); end if get(handles.eq3,'Value')==1 line(fc3,g3, ... 'LineWidth',3,... 'MarkerSize',3,... 'Color',[1 0 0], ... 'Marker','diamond', ... 'Tag','eq3', ... 'LineStyle','none'); text(fc3,g3+2,'3','FontWeight','bold'); end if get(handles.eq4,'Value')==1 line(fc4,g4, ... 'LineWidth',3,... 'MarkerSize',3,... 'Color',[1 0 0], ... 'Marker','diamond', ... 'Tag','eq4', ... 'LineStyle','none'); text(fc4,g4+2,'4','FontWeight','bold'); end if get(handles.eq5,'Value')==1 line(fc5,g5, ... 'LineWidth',3,... 'MarkerSize',3,... 'Color',[1 0 0], ... 'Marker','diamond', ... 'Tag','eq5', ... 'LineStyle','none'); text(fc5,g5+2,'5','FontWeight','bold'); end if get(handles.eq6,'Value')==1 line(fc6,g6, ... 'LineWidth',3,... 'MarkerSize',3,... 'Color',[1 0 0], ... 'Marker','diamond', ... 'Tag','eq6', ... 'LineStyle','none'); text(fc6,g6+2,'6','FontWeight','bold'); end if get(handles.eq7,'Value')==1 line(fc7,g7, ... 'LineWidth',3,... 'MarkerSize',3,... 'Color',[1 0 0], ... 'Marker','diamond', ... 'Tag','eq7', ... 'LineStyle','none'); text(fc7,g7+2,'7','FontWeight','bold'); end dots=findobj('Color',[1 0 0],'Marker','diamond'); uistack(dots,'top'); function figure1_WindowButtonDownFcn(hObject, eventdata, handles) tag = get(gco,'Tag'); if strcmp(tag,'eq1') Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); setappdata(hObject,'eq1on',1); else setappdata(hObject,'eq1on',0); end if strcmp(tag,'eq2') Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); setappdata(hObject,'eq2on',1); else setappdata(hObject,'eq2on',0); end if strcmp(tag,'eq3') Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); setappdata(hObject,'eq3on',1); else setappdata(hObject,'eq3on',0); end if strcmp(tag,'eq4') Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); setappdata(hObject,'eq4on',1); else setappdata(hObject,'eq4on',0); end if strcmp(tag,'eq5') if get(handles.type5,'Value')==1 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); elseif get(handles.type5,'Value')==2 || get(handles.type5,'Value')==3 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[25 18000]); elseif get(handles.type5,'Value')==4 || get(handles.type5,'Value')==5 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); end setappdata(hObject,'eq5on',1); else setappdata(hObject,'eq5on',0); end if strcmp(tag,'eq6') if get(handles.type6,'Value')==1 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); elseif get(handles.type6,'Value')==2 || get(handles.type6,'Value')==3 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[25 18000]); elseif get(handles.type6,'Value')==4 || get(handles.type6,'Value')==5 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); end setappdata(hObject,'eq6on',1); else setappdata(hObject,'eq6on',0); end if strcmp(tag,'eq7') if get(handles.type7,'Value')==1 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); elseif get(handles.type7,'Value')==2 || get(handles.type7,'Value')==3 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[25 18000]); elseif get(handles.type7,'Value')==4 || get(handles.type7,'Value')==5 Gmax=100; Gmin=-100; setappdata(handles.figure1,'Glim',[Gmin Gmax]); setappdata(handles.figure1,'flim',[20 20000]); end setappdata(hObject,'eq7on',1); else setappdata(hObject,'eq7on',0); end % --- Executes on mouse motion over figure - except title and menu. function figure1_WindowButtonMotionFcn(hObject, eventdata, handles) if getappdata(hObject,'eq1on')==1 Glim=getappdata(handles.figure1,'Glim'); flim=getappdata(handles.figure1,'flim'); set(gcf,'DoubleBuffer','on'); cp = get(gca,'CurrentPoint'); xv = cp(1,1); yv = cp(1,2); if yv < Glim(:,1) yv=Glim(:,1); end if yv > Glim(:,2) yv=Glim(:,2); end if xv < flim(:,1) xv=flim(:,1); end if xv > flim(:,2) xv=flim(:,2); end set(gco,'XData',xv,'YData',yv); setappdata(handles.slider1,'fcVal1',xv); setappdata(handles.slider1,'gVal1',yv); if get(handles.fc1,'Value')==1 set(handles.slider1,'Value',xv); set(handles.val1,'String',round(xv)); elseif get(handles.g1,'Value')==1 set(handles.slider1,'Value',yv); set(handles.val1,'String',0.1*round(10*yv)); end calculatePEQ(hObject,handles); end if getappdata(hObject,'eq2on')==1 Glim=getappdata(handles.figure1,'Glim'); flim=getappdata(handles.figure1,'flim'); set(gcf,'DoubleBuffer','on'); cp = get(gca,'CurrentPoint'); xv = cp(1,1); yv = cp(1,2); if yv < Glim(:,1) yv=Glim(:,1); end if yv > Glim(:,2) yv=Glim(:,2); end if xv < flim(:,1) xv=flim(:,1); end if xv > flim(:,2) xv=flim(:,2); end set(gco,'XData',xv,'YData',yv); setappdata(handles.slider2,'fcVal2',xv); setappdata(handles.slider2,'gVal2',yv); if get(handles.fc2,'Value')==1 set(handles.slider2,'Value',xv); set(handles.val2,'String',round(xv)); elseif get(handles.g2,'Value')==1 set(handles.slider2,'Value',yv); set(handles.val2,'String',0.1*round(10*yv)); end calculatePEQ(hObject,handles); end if getappdata(hObject,'eq3on')==1 Glim=getappdata(handles.figure1,'Glim'); flim=getappdata(handles.figure1,'flim'); set(gcf,'DoubleBuffer','on'); cp = get(gca,'CurrentPoint'); xv = cp(1,1); yv = cp(1,2); if yv < Glim(:,1) yv=Glim(:,1); end if yv > Glim(:,2) yv=Glim(:,2); end if xv < flim(:,1) xv=flim(:,1); end if xv > flim(:,2) xv=flim(:,2); end set(gco,'XData',xv,'YData',yv); setappdata(handles.slider3,'fcVal3',xv); setappdata(handles.slider3,'gVal3',yv); if get(handles.fc3,'Value')==1 set(handles.slider3,'Value',xv); set(handles.val3,'String',round(xv)); elseif get(handles.g3,'Value')==1 set(handles.slider3,'Value',yv); set(handles.val3,'String',0.1*round(10*yv)); end calculatePEQ(hObject,handles); end if getappdata(hObject,'eq4on')==1 Glim=getappdata(handles.figure1,'Glim'); flim=getappdata(handles.figure1,'flim'); set(gcf,'DoubleBuffer','on'); cp = get(gca,'CurrentPoint'); xv = cp(1,1); yv = cp(1,2); if yv < Glim(:,1) yv=Glim(:,1); end if yv > Glim(:,2) yv=Glim(:,2); end if xv < flim(:,1) xv=flim(:,1); end if xv > flim(:,2) xv=flim(:,2); end set(gco,'XData',xv,'YData',yv); setappdata(handles.slider4,'fcVal4',xv); setappdata(handles.slider4,'gVal4',yv); if get(handles.fc4,'Value')==1 set(handles.slider4,'Value',xv); set(handles.val4,'String',round(xv)); elseif get(handles.g4,'Value')==1 set(handles.slider4,'Value',yv); set(handles.val4,'String',0.1*round(10*yv)); end calculatePEQ(hObject,handles); end if getappdata(hObject,'eq5on')==1 Glim=getappdata(handles.figure1,'Glim'); flim=getappdata(handles.figure1,'flim'); set(gcf,'DoubleBuffer','on'); cp = get(gca,'CurrentPoint'); xv = cp(1,1); yv = cp(1,2); if yv < Glim(:,1) yv=Glim(:,1); end if yv > Glim(:,2) yv=Glim(:,2); end if xv < flim(:,1) xv=flim(:,1); end if xv > flim(:,2) xv=flim(:,2); end set(gco,'XData',xv,'YData',yv); setappdata(handles.slider5,'fcVal5',xv); setappdata(handles.slider5,'gVal5',yv); if get(handles.fc5,'Value')==1 set(handles.slider5,'Value',xv); set(handles.val5,'String',round(xv)); elseif get(handles.g5,'Value')==1 set(handles.slider5,'Value',yv); set(handles.val5,'String',0.1*round(10*yv)); end calculatePEQ(hObject,handles); end if getappdata(hObject,'eq6on')==1 Glim=getappdata(handles.figure1,'Glim'); flim=getappdata(handles.figure1,'flim'); set(gcf,'DoubleBuffer','on'); cp = get(gca,'CurrentPoint'); xv = cp(1,1); yv = cp(1,2); if yv < Glim(:,1) yv=Glim(:,1); end if yv > Glim(:,2) yv=Glim(:,2); end if xv < flim(:,1) xv=flim(:,1); end if xv > flim(:,2) xv=flim(:,2); end set(gco,'XData',xv,'YData',yv); setappdata(handles.slider6,'fcVal6',xv); setappdata(handles.slider6,'gVal6',yv); if get(handles.fc6,'Value')==1 set(handles.slider6,'Value',xv); set(handles.val6,'String',round(xv)); elseif get(handles.g6,'Value')==1 set(handles.slider6,'Value',yv); set(handles.val6,'String',0.1*round(10*yv)); end calculatePEQ(hObject,handles); end if getappdata(hObject,'eq7on')==1 Glim=getappdata(handles.figure1,'Glim'); flim=getappdata(handles.figure1,'flim'); set(gcf,'DoubleBuffer','on'); cp = get(gca,'CurrentPoint'); xv = cp(1,1); yv = cp(1,2); if yv < Glim(:,1) yv=Glim(:,1); end if yv > Glim(:,2) yv=Glim(:,2); end if xv < flim(:,1) xv=flim(:,1); end if xv > flim(:,2) xv=flim(:,2); end set(gco,'XData',xv,'YData',yv); setappdata(handles.slider7,'fcVal7',xv); setappdata(handles.slider7,'gVal7',yv); if get(handles.fc7,'Value')==1 set(handles.slider7,'Value',xv); set(handles.val7,'String',round(xv)); elseif get(handles.g7,'Value')==1 set(handles.slider7,'Value',yv); set(handles.val7,'String',0.1*round(10*yv)); end calculatePEQ(hObject,handles); end function figure1_WindowButtonUpFcn(hObject, eventdata, handles) setappdata(handles.figure1,'eq1on',0); setappdata(handles.figure1,'eq2on',0); setappdata(handles.figure1,'eq3on',0); setappdata(handles.figure1,'eq4on',0); setappdata(handles.figure1,'eq5on',0); setappdata(handles.figure1,'eq6on',0); setappdata(handles.figure1,'eq7on',0); % --- Executes on button press in reset. function reset_Callback(hObject, eventdata, handles) setappdata(handles.yup,'y',20); set(handles.type5,'Value',1); set(handles.type6,'Value',1); set(handles.type7,'Value',1); set(handles.eq1,'Value',1); set(handles.eq2,'Value',1); set(handles.eq3,'Value',1); set(handles.eq4,'Value',1); set(handles.eq5,'Value',1); set(handles.eq6,'Value',1); set(handles.eq7,'Value',0); set(handles.fc1,'Value',1); set(handles.fc2,'Value',1); set(handles.fc3,'Value',1); set(handles.fc4,'Value',1); set(handles.fc5,'Value',1); set(handles.fc6,'Value',1); set(handles.fc7,'Value',1); set(handles.slider1,'Max',10); set(handles.slider2,'Max',10); set(handles.slider3,'Max',10); set(handles.slider4,'Max',10); set(handles.slider5,'Max',10); set(handles.slider6,'Max',10); set(handles.slider7,'Max',10); set(handles.slider1,'Min',0.01); set(handles.slider2,'Min',0.01); set(handles.slider3,'Min',0.01); set(handles.slider4,'Min',0.01); set(handles.slider5,'Min',0.01); set(handles.slider6,'Min',0.01); set(handles.slider7,'Min',0.01); set(handles.slider1,'Value',3); set(handles.slider2,'Value',3); set(handles.slider3,'Value',3); set(handles.slider4,'Value',3); set(handles.slider5,'Value',3); set(handles.slider6,'Value',3); set(handles.slider7,'Value',3); set(handles.val1,'String',3); set(handles.val2,'String',3); set(handles.val3,'String',3); set(handles.val4,'String',3); set(handles.val5,'String',3); set(handles.val6,'String',3); set(handles.val7,'String',3); setappdata(handles.slider1,'fcVal1',63); setappdata(handles.slider2,'fcVal2',160); setappdata(handles.slider3,'fcVal3',400); setappdata(handles.slider4,'fcVal4',1000); setappdata(handles.slider5,'fcVal5',2500); setappdata(handles.slider6,'fcVal6',6300); setappdata(handles.slider7,'fcVal7',100900); setappdata(handles.slider1,'qVal1',3); setappdata(handles.slider2,'qVal2',3); setappdata(handles.slider3,'qVal3',3); setappdata(handles.slider4,'qVal4',3); setappdata(handles.slider5,'qVal5',3); setappdata(handles.slider6,'qVal6',3); setappdata(handles.slider7,'qVal7',3); setappdata(handles.slider1,'gVal1',0); setappdata(handles.slider2,'gVal2',0); setappdata(handles.slider3,'gVal3',0); setappdata(handles.slider4,'gVal4',0); setappdata(handles.slider5,'gVal5',0); setappdata(handles.slider6,'gVal6',0); setappdata(handles.slider7,'gVal7',0); set(handles.q1,'Value',1); set(handles.q2,'Value',1); set(handles.q3,'Value',1); set(handles.q4,'Value',1); set(handles.q5,'Value',1); set(handles.q6,'Value',1); set(handles.q7,'Value',1); set(handles.fc1,'Value',0); set(handles.fc2,'Value',0); set(handles.fc3,'Value',0); set(handles.fc4,'Value',0); set(handles.fc5,'Value',0); set(handles.fc6,'Value',0); set(handles.fc7,'Value',0); set(handles.g1,'Value',0); set(handles.g2,'Value',0); set(handles.g3,'Value',0); set(handles.g4,'Value',0); set(handles.g5,'Value',0); set(handles.g6,'Value',0); set(handles.g7,'Value',0); calculatePEQ(hObject,handles); % --- Executes on selection change in opensig. function opensig_Callback(hObject, eventdata, handles) sig = evalin('base','who'); set(hObject,'String',sig) set(hObject,'String',sig); list_entries = get(hObject,'String'); index_selected = get(hObject,'Value'); sig = list_entries{index_selected}; setappdata(hObject,'sig',sig); % --- Executes during object creation, after setting all properties. function opensig_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in ok. function ok_Callback(hObject, eventdata, handles) Hd_peq=getappdata(handles.store,'Hd_peq'); assignin('base','DesignedParametricEqualizer',Hd_peq); sig=getappdata(handles.opensig,'sig'); sig_filt=evalin('base',['filter(DesignedParametricEqualizer,' sig ');']); evalin('base','clear DesignedParametricEqualizer;'); prompt = {'Enter name for filtered signal :'}; dlg_title = 'Name'; num_lines=1; def = {[sig '_PEQ']}; newname = inputdlg(prompt,dlg_title,num_lines,def); newname=cell2mat(newname); assignin('base',newname,sig_filt./max(max(abs(sig_filt)))); % --- Executes on button press in oct. function oct_Callback(hObject, eventdata, handles) if get(hObject,'Value')==1 set(handles.Noct,'Enable','on'); set(handles.text49,'Enable','on'); else set(handles.Noct,'Enable','off'); set(handles.text49,'Enable','off'); end data = getappdata(handles.open,'data'); if get(handles.oct,'Value')==1 noct=get(handles.Noct,'String'); else noct='3'; end L=4096; [pX,pXoct]=evalin('base',['averfft_base(' data ',' num2str(L) ',' num2str(L) '/2,50,' noct ');']); f1=find(pXoct<3,1,'first'); f2=find(pXoct<4,1,'last'); pXoct=pXoct-mean(pXoct(20:465)); norm=mean(pXoct(f1:f2))+1; pXoct=pXoct-norm; pX=pX-norm; if get(handles.oct,'Value')==1 ref=pXoct; else ref=pX; end setappdata(handles.open,'ref',ref); calculatePEQ(hObject,handles); % --- Executes on selection change in type5. function type5_Callback(hObject, eventdata, handles) if get(hObject,'Value')==2 || get(hObject,'Value')==3 set(handles.q5,'Enable','off'); set(handles.q5,'String',''); g=getappdata(handles.slider5,'gVal5'); fc=getappdata(handles.slider5,'fcVal5'); Gmax=100; if g > Gmax setappdata(handles.slider5,'gVal5',Gmax); elseif fc < 25 setappdata(handles.slider5,'fcVal5',25); elseif fc > 18000 setappdata(handles.slider5,'fcVal5',18000); end elseif get(hObject,'Value')==1 set(handles.q5,'Enable','on'); set(handles.q5,'String','Q'); elseif get(hObject,'Value')==4 || get(hObject,'Value')==5 set(handles.q5,'Enable','on'); set(handles.q5,'String','N'); if getappdata(handles.slider5,'gVal5')>100 setappdata(handles.slider5,'gVal5',100); end setappdata(handles.slider5,'qVal5',1); end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function type5_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in type6. function type6_Callback(hObject, eventdata, handles) if get(hObject,'Value')==2 || get(hObject,'Value')==3 set(handles.q6,'Enable','off'); set(handles.q6,'String',''); g=getappdata(handles.slider6,'gVal6'); fc=getappdata(handles.slider6,'fcVal6'); Gmax=100; if g > Gmax setappdata(handles.slider6,'gVal6',Gmax); elseif fc < 25 setappdata(handles.slider6,'fcVal6',25); elseif fc > 18000 setappdata(handles.slider6,'fcVal6',18000); end elseif get(hObject,'Value')==1 set(handles.q6,'Enable','on'); set(handles.q6,'String','Q'); elseif get(hObject,'Value')==4 || get(hObject,'Value')==5 set(handles.q6,'Enable','on'); set(handles.q6,'String','N'); if getappdata(handles.slider6,'gVal6')>100 setappdata(handles.slider6,'gVal6',100); end setappdata(handles.slider6,'qVal6',1); end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function type6_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in type7. function type7_Callback(hObject, eventdata, handles) if get(hObject,'Value')==2 || get(hObject,'Value')==3 set(handles.q7,'Enable','off'); set(handles.q7,'String',''); g=getappdata(handles.slider7,'gVal7'); fc=getappdata(handles.slider7,'fcVal7'); Gmax=100; if g > Gmax setappdata(handles.slider7,'gVal7',Gmax); elseif fc < 25 setappdata(handles.slider7,'fcVal7',25); elseif fc > 18000 setappdata(handles.slider7,'fcVal7',18000); end elseif get(hObject,'Value')==1 set(handles.q7,'Enable','on'); set(handles.q7,'String','Q'); elseif get(hObject,'Value')==4 || get(hObject,'Value')==5 set(handles.q7,'Enable','on'); set(handles.q7,'String','N'); if getappdata(handles.slider7,'gVal7')>100 setappdata(handles.slider7,'gVal7',100); end setappdata(handles.slider7,'qVal7',1); end calculatePEQ(hObject,handles); % --- Executes during object creation, after setting all properties. function type7_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in ydwn. function ydwn_Callback(hObject, eventdata, handles) y=getappdata(handles.yup,'y')-5; if y > 0 setappdata(handles.yup,'y',y); calculatePEQ(hObject,handles); end % --- Executes on button press in yup. function yup_Callback(hObject, eventdata, handles) y=getappdata(handles.yup,'y')+5; setappdata(handles.yup,'y',y); calculatePEQ(hObject,handles);